# 2.数据类型


# # 整数--不同进制的转换
# # 默认输入十进制，二进制0b,八进制0o,十六进制0x
# # 十进制与其他进制的转换
# a = bin(16)  # 转二进制
# b = oct(16)  # 转八进制
# c = hex(16)  # 转十六进制

# print(a, b, c)
# # 上述转换后结果为字符类型
# print(type(a))
# print(a == b == c)

# # 其他进制转十进制
# d = int(a, 2)  # 二进制转十进制
# e = int(b, 8)  # 八进制转十进制
# f = int(c, 16)  # 十六进制转十进制
# print(d, e, f)


# 浮点型--不确定性
# print((0.1+0.2)==0.3)

# 四舍五入
# a = 3*0.1
# b = round(a, 1)
# print(b)
# print(b==0.3)


# 复数 a+bj a为实部、b为虚部、虚部系数为1时，不能省略
# print(1+2j)


# 数字运算符（a操作b）
# 加减乘除
# print((1+3-4*2)/5)

# 取反
# x=1
# print(-x)


# 乘方运算 **
# print(2**3)

# 整数商和模运算
# print(13//5)
# print(13%5)


# 数字操作运算函数

# print(abs(-1))
# print(abs(3+4j))

# 幂次方 pow(x,n)
# print(pow(2,3))  等价于**
# print(pow(2, 5, 3)) 2^5%3

# 四舍五入
# a = 1.618
# print(round(a))  # 四舍五入为整数
# print(round(a, 2))  # 两位小数
# print(round(a, 5))  # 参数不足不会补齐


# 整数商和模运算 divmod(x,y)
# 等价于 返回二元元组(x/y,x%y)
# print(divmod(13,5)) #比(x/y,x%y)更快，只执行了一次x/y


# max、min 最大、最小值

# a = [1, 2, 3, 4, 5, 6]
# # print(max(a))
# # print(min(a))

# #求和sum
# print(sum(a))


# 借助科学计算库 math\scipy\numpy
# import math
# print(math.exp(1))  # 指数运算  e^x
# print(math.log2(2))  # 对数运算
# print(math.sqrt(4))  # 开方运算

# import numpy as np
# a = [1, 2, 3, 4, 5]
# print(np.mean(a))  # 求平均值
# print(np.median(a))  # 求中位数
# print(np.std(a))  # 求标准差


# 字符串类型处理  用"或' 括起来的任意字符
# print("Python")
# print('Python')

# 字符串中有双引号或单引号的情况
# 双中有单
# print("I'm 18 years old")
# 单中有双
# print('"python" is good')
# 双中有双，单中有单-----转义符\
# print("\"Python\"is good")
# # 转义符可用来换行

# s = "Python1 \
#     is good"
# print(s)


# 字符串的性质
# 1.字符串索引
# s="Python is good"
# print(s[0])
# print(s[5])

# print(s[-1])

# 2.字符串的切片   变量名[开始位置:结束位置:间隔]
'''
起始位置是0 可以省略
结束位置省略，代表是最后一个字符
可以使用反向索引
'''
# s="Python"
# print(s[0:2:1])
# print(s[-5])

'''
反向切片
起始位置是-1可以省略
结束位置省略，代表是第一个字符
'''
# 字符串拼接  +
# print("ab"+"cd")

# #字符串成倍复制 n*字符串

# print(3*"abc")

# 成员运算
# 1.子集 in  全集
# total = "tom,zhangsan,lisi"
# # print("zhang1san" in total)

# #2.遍历字符串 for 字符 in 字符串
# for tmp in total:
#     print(tmp)


# 字符串处理函数
# 1.字符串长度
# s = "python"
# print(len(s))

# 2.字符编码
# 将中文字符、英文字母、数字、特殊字符等转化为计算机可识别的二进制数
# 每个单一字符对应一个唯一的互不重复的二进制编码
# python中是用的是Unicode编码

# 将字符转化为unicode码---ord（字符）
# print(ord("1"))
# print(ord("a"))
# print(ord("*"))
# print(ord("中"))
# print(ord("国"))

# 将unicode码转化为字符---chr(unicode码)
# print(chr(1010))
# print(chr(10000))
# print(chr(12345))


# 字符串处理方法
# split分割
# s="Java Python C C++ Golang"
# ss= s.split(" ")
# print(s)
# print(ss)

# join 聚合
# s="12345"
# s1=",".join(s)
# print(s1)
# print(s)

# 删除字符串两端的空格

# s="    I hava a idea    "
# print(s.strip())
# print(s.lstrip())
# print(s.rstrip())

# replace 替换
# s = "Python is good"
# ss = s.replace("is", "is very")
# print(s)
# print(ss)

#字符串统计
# s="Python is good"
# print(s.count("o"))

#大小写

# s="python is good"
# print(s.upper())
# print(s.lower())


#布尔类型
# print(any([False,1,0,None]))
# print(all([False,1,0,None]))

#作为掩码
# import numpy as np
# x= np.array([[1,3,2,5,7]])
# print(x>3)
# print(x[x>3])


#类型判别及类型转换
# a = 10
# b="zhangsan"
# print(type(a))
# print(type(b))
# # isinstance
# print(isinstance(a,int))
# print(isinstance(a,object))
# #isdigital
# print(b.isdigit())
# print(b.isalpha())
# print(b.isalnum()) #数字和字母

#类型转换
#数字类型转字符类型
age =10
print("My age is :" + str(age))
#字符串转数字
s="10"
print(int(s))
print(float(s))
print(eval(s))